code: public HeaderDefinition getHeaderDefinition() {
      JSONArray jsonArray = null;
      try {
        jsonArray = _jsonObject.getJSONArray(COLUMN_NAMES_FIELD);
        List<String> columnNames = new ArrayList<String>(jsonArray.length());
        for (int i = 0; i < jsonArray.length(); i++) {
          columnNames.add(jsonArray.getString(i));
        }
        return HeaderDefinition.of(columnNames);
      } catch (JSONException ex) {
        s_logger.error("Metadata had unexpected structure - could not extract column_names field. Was:\n{}", _jsonObject.toString());
        throw new QuandlRuntimeException("Metadata had unexpected structure", ex);
      }
    }
docs: Extract a HeaderDefinition from the meta data. Throws a QuandlRuntimeException if it cannot construct a valid HeaderDefinition
  
  @return the header definition, not null