public Optional<UInt256> storageAt(
      final Address address, final UInt256 storageIndex, final long blockNumber) {
    final Hash blockHash = getBlockHashByNumber(blockNumber).orElse(Hash.EMPTY);

    return storageAt(address, storageIndex, blockHash);
  }
Determines the block header for the address associated with this storage index.

@param address The address of the account that owns the storage being queried.
@param storageIndex The storage index whose value is being retrieved.
@param blockNumber The blockNumber that is being queried.
@return The value at the storage index being queried.
ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/query/BlockchainQueries.java