code: @Override
    public Object[] array() {
      DataType dt = data.dataType();
      Object[] list = new Object[length];
      try {
        for (int i = 0; i < length; i++) {
          if (!data.isNullAt(offset + i)) {
            list[i] = get(i, dt);
          }
        }
        return list;
      } catch(Exception e) {
        throw new RuntimeException("Could not get the array", e);
      }
    }
docs: TODO: this is extremely expensive.