code: public Row readRow(String tableId, ByteString rowKey) {
      return ApiExceptions.callAndTranslateApiException(readRowAsync(tableId, rowKey, null));
    }
docs: Convenience method for synchronously reading a single row. If the row does not exist, the value
  will be null.
  
  <p>Sample code:
  
  <pre>{code
  try (BigtableDataClient bigtableDataClient = BigtableDataClient.create("[PROJECT]", "[INSTANCE]")) {
  String tableId = "[TABLE]";
  
  Row row = bigtableDataClient.readRow(tableId, ByteString.copyFromUtf8("key"));
  // Do something with row, for example, display all cells
  if(row != null) {
  System.out.println(row.getKey().toStringUtf8());
  for(RowCell cell : row.getCells()) {
  System.out.printf("Family: %s   Qualifier: %s   Value: %s", cell.getFamily(),
  cell.getQualifier().toStringUtf8(), cell.getValue().toStringUtf8());
  }
  }
  } catch(ApiException e) {
  e.printStackTrace();
  }
  }</pre>
  
  @throws com.google.api.gax.rpc.ApiException when a serverside error occurs