diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/Case.java b/Core/src/org/sleuthkit/autopsy/casemodule/Case.java
index 3ad14f61379912bb43fbc5533cefe8ffa0c51c99..395310e6004973ecb346a09170b272f2f86a327a 100644
--- a/Core/src/org/sleuthkit/autopsy/casemodule/Case.java
+++ b/Core/src/org/sleuthkit/autopsy/casemodule/Case.java
@@ -1468,9 +1468,16 @@ public String getTextIndexName() {
      */
     public boolean hasData() {
         boolean hasDataSources = false;
-        try {
-            hasDataSources = (getDataSources().size() > 0);
-        } catch (TskCoreException ex) {
+        String query = "SELECT count(*) AS count FROM tsk_objects WHERE par_obj_id IS NULL";
+        try (SleuthkitCase.CaseDbQuery dbQuery = caseDb.executeQuery(query)) {
+            ResultSet resultSet = dbQuery.getResultSet();
+            if (resultSet.next()) {
+                long numDataSources = resultSet.getLong("count");
+                if (numDataSources > 0) {
+                    hasDataSources = true;
+                }
+            }
+        } catch (TskCoreException | SQLException ex) {
             logger.log(Level.SEVERE, "Error accessing case database", ex); //NON-NLS
         }
         return hasDataSources;