code: @Nonnull
  	public static StateMetaInfoReader getReader(int readVersion, @Nonnull StateTypeHint stateTypeHint) {
  
  		if (readVersion < 5) {
  			// versions before 5 still had different state meta info formats between keyed / operator state
  			switch (stateTypeHint) {
  				case KEYED_STATE:
  					return getLegacyKeyedStateMetaInfoReader(readVersion);
  				case OPERATOR_STATE:
  					return getLegacyOperatorStateMetaInfoReader(readVersion);
  				default:
  					throw new IllegalArgumentException("Unsupported state type hint: " + stateTypeHint +
  						" with version " + readVersion);
  			}
  		} else {
  			return getReader(readVersion);
  		}
  	}
docs: Returns a reader for {@link StateMetaInfoSnapshot} with the requested state type and version number.
  
  @param readVersion the format version to read.
  @param stateTypeHint a hint about the expected type to read.
  @return the requested reader.