--- a/src/main/java/org/sba_research/timbus/kb/PackageKnowledgeBase.java
+++ b/src/main/java/org/sba_research/timbus/kb/PackageKnowledgeBase.java
@@ -51,6 +51,19 @@
                 "GROUP BY ?package\n" + 
                 "ORDER BY ?package\n";
         return JenaQueryFacade.removeNamespace(JenaQueryFacade.extractColumn(queryFacade.query(queryString), "package"));
+    }
+    
+    public List<String> getAllVirtualPackageNames() {
+        String queryString = "" +
+                "PREFIX cudf: <http://timbus.teco.edu/ontologies/DSOs/CUDF.owl#>\n" +
+                "\n" +
+                "SELECT ?virtualPackage\n" +
+                "WHERE {\n" +
+                "    ?virtualPackage a cudf:VirtualPackage .\n" +
+                "}\n" +
+                "GROUP BY ?virtualPackage\n" + 
+                "ORDER BY ?virtualPackage\n";
+        return JenaQueryFacade.removeNamespace(JenaQueryFacade.extractColumn(queryFacade.query(queryString), "virtualPackage"));
     }
     
     public List<String> getAlternativePackages(String packageName) {