code: public static List<FlatRow> toRows(Iterable<ReadRowsResponse> responses) {
      final ArrayList<FlatRow> result = new ArrayList<>();
      RowMerger rowMerger = new RowMerger(new StreamObserver<FlatRow>() {
        @Override
        public void onNext(FlatRow value) {
          result.add(value);
        }
  
        @Override
        public void onError(Throwable t) {
          if (t instanceof RuntimeException) {
            throw (RuntimeException) t;
          } else {
            throw new IllegalStateException(t);
          }
        }
  
        @Override
        public void onCompleted() {
        }
      });
      for (ReadRowsResponse response : responses) {
        rowMerger.onNext(response);
      }
      rowMerger.onCompleted();
      return result;
    }
docs: <p>toRows.</p>
  
  @param responses a {@link java.lang.Iterable} object.
  @return a {@link java.util.List} object.