docs: @Override
      public String toJSONString() {
          JSONStringer js = new JSONStringer();
          try {
  
              js.object();
  
              // status code (1 byte)
              js.keySymbolValuePair(JSON_STATUS_KEY, getStatusCode());
  
              // column schema
              js.key(JSON_SCHEMA_KEY).array();
              for (int i = 0; i < getColumnCount(); i++) {
                  js.object();
                  js.keySymbolValuePair(JSON_NAME_KEY, getColumnName(i));
                  js.keySymbolValuePair(JSON_TYPE_KEY, getColumnType(i).getValue());
                  js.endObject();
              }
              js.endArray();
  
              // row data
              js.key(JSON_DATA_KEY).array();
              VoltTableRow row = cloneRow();
              row.resetRowPosition();
              while (row.advanceRow()) {
                  js.array();
                  for (int i = 0; i < getColumnCount(); i++) {
                      row.putJSONRep(i, js);
                  }
                  js.endArray();
              }
              js.endArray();
  
              js.endObject();
          }
          catch (JSONException e) {
              e.printStackTrace();
              throw new RuntimeException("Failed to serialized a table to JSON.", e);
          }
          return js.toString();
      }