code: public String[][] getAllValues() throws IOException {
          ArrayList<String[]> records = new ArrayList<String[]>();
          String[] values;
          String[][] ret = null;
          while ((values = getLine()) != null) {
              records.add(values);
          }
          if (records.size() > 0) {
              ret = new String[records.size()][];
              records.toArray(ret);
          }
          return ret;
      }
docs: Parses the CSV according to the given strategy
  and returns the content as an array of records
  (whereas records are arrays of single values).
  <p>
  The returned content starts at the current parse-position in
  the stream.
  
  @return matrix of records x values ('null' when end of file)
  @throws IOException on parse error or input read-failure