public Map<String, String> fetchAccountMetadataAtVersion(int version) throws IllegalArgumentException {
    List<BlobIDAndVersion> blobIDAndVersions = fetchAllBlobIDAndVersions();
    if (blobIDAndVersions == null) {
      return null;
    }
    for (BlobIDAndVersion blobIDAndVersion : blobIDAndVersions) {
      if (blobIDAndVersion.getVersion() == version) {
        return readAccountMetadataFromBlobID(blobIDAndVersion.getBlobID());
      }
    }
    throw new IllegalArgumentException("Version " + version + " doesn't exist");
  }
Return a map from account id to {@link Account} metadata at given version. It returns null when there is any error.
@param version The version of {@link Account} metadata to return.
@return A map from account id to {@link Account} metadata in json format.
@throws IllegalArgumentException When the version is not valid.
ambry-account/src/main/java/com/github/ambry/account/RouterStore.java