code: public List<String[]> getTabularData() throws OWLException, InterruptedException {
  		if (tabularData == null) {
  			tabularData = new ArrayList<>();
  			String[] columnName = results.getSignature().toArray(new String[numcols]);		
  			// Append the column names
  			tabularData.add(columnName);
  			while(this.isFetching){
  				Thread.sleep(10);
  			}
  			if(stopFetching)
  				return null;
  			// Append first the already fetched tuples
  			tabularData.addAll(resultsTable); 
  			// Append the rest
  			while (!stopFetching && results.hasNext()) {
                  final OWLBindingSet bindingSet = results.next();
                  String[] crow = new String[numcols];
  				for (int j = 0; j < numcols; j++) {
  					OWLPropertyAssertionObject constant = bindingSet.getOWLPropertyAssertionObject(j + 1);
  					if (constant != null) {
  						crow[j] = constant.toString();
  					}
  					else {
  						crow[j] = "";
  					}
  				}
  				tabularData.add(crow);
  			}
  		}
  		return tabularData;
  	}
docs: Fetch all the tuples returned by the result set.