code: RowT consumeRow() {
      Preconditions.checkState(currentState == AWAITING_ROW_CONSUME, "No row to consume");
      RowT row = completeRow;
      reset();
      return row;
    }
docs: Returns the last completed row and transitions to awaiting a new row.
  
  @return The last completed row.
  @throws IllegalStateException If the last chunk did not complete a row.