code: @Override
      public Object[][] readAll(List<String> columnNames) {
          int rowNum = (int) getSasFileProperties().getRowCount();
          Object[][] result = new Object[rowNum][];
          for (int i = 0; i < rowNum; i++) {
              try {
                  result[i] = readNext(columnNames);
              } catch (IOException e) {
                  if (LOGGER.isWarnEnabled()) {
                      LOGGER.warn("I/O exception, skipping the rest of the file. "
                              + "Rows read: " + i + ". Expected number of rows from metadata: " + rowNum, e);
                  }
                  break;
              }
          }
          return result;
      }
docs: Reads all rows from the sas7bdat file. For each row, only the columns defined in the list are read.
  
  @param columnNames list of column names which should be processed.
  @return an array of array objects whose elements can be objects of the following classes: double, long,
  int, byte[], Date depending on the column they are in.