private void refreshData(int skip) {
        if (rowData == null) {
            Scan scan;
            if (rowKey == null) {
                scan = new Scan();
            }
            else {
                scan = new Scan(rowKey.getBytes());
            }

            if (!filterModel.isEmpty()) {
                SingleColumnValueFilter filter = new SingleColumnValueFilter(
                        filterModel.getFamily().getBytes(),
                        filterModel.getColumn().getBytes(),
                        CompareFilter.CompareOp.EQUAL,
                        filterModel.getValue().getBytes()
                );
                filter.setFilterIfMissing(true);
                scan.setFilter(filter);
            }

            try {
                ResultScanner resultScanner = table.getHTable().getScanner(scan);
                while(skip > 0) {
                    resultScanner.next();
                    skip--;
                }

                Result result = resultScanner.next();

                rowData = new RowData();
                if (result != null) {
                    rowData.setRowKey(result.getRow());
                    rowKey = rowData.getRowKeyString();
                    
                    for (KeyValue kv : result.list()) {
                        rowData.add(new HBTriplet(kv.getFamily(), kv.getQualifier(), kv.getValue()));
                    }
                }
            }
            catch(IOException ioe) {
                throw new ExplorerException("Error getting data from table " + table.getFullName());
            }
        }


    }