Unloaded chunks do not exist. Its not that they don't have a state, they literally, fundamentally don't exist. An unloaded chunk can be in one of three states:
Never Created
Created, but not generated (Minecraft has allocated memory, but not run generation, and it is possible for a chunk to be part way through that process)*
Populated, but saved to disk
There is no way to differentiate between these states.
The only "solution" is to load the chunk.
*Technically there are ways to query block states in these chunks, but as their memory is in another thread, it is not safe to do so.