Reading contract state means connecting to a blockchain node and calling a contract's read-only function to get current data. The program creates a contract object using the contract's address, ABI, and a provider that connects to the blockchain. When calling the read function, it returns a Promise because the call is asynchronous. The blockchain node processes the call and returns the stored value without changing the blockchain. Finally, the program receives the value and can display or use it. This process does not send a transaction or cost gas because it only reads data. The provider is essential to connect and fetch data from the blockchain.