diff --git a/src/ViewsNaturalSortService.php b/src/ViewsNaturalSortService.php
index 9691925..89a601b 100644
--- a/src/ViewsNaturalSortService.php
+++ b/src/ViewsNaturalSortService.php
@@ -241,39 +241,41 @@ class ViewsNaturalSortService {
    * @see EntityViewsData::getViewsData()
    */
   public function getViewsBaseTable($fieldDefinition) {
-    $entityType = $this->entityTypeManager->getDefinition($fieldDefinition->getTargetEntityTypeId());
-    $base_table = $entityType->getBaseTable() ?: $entityType->id();
-    $views_revision_base_table = NULL;
-    $revisionable = $entityType->isRevisionable();
-    $base_field = $entityType->getKey('id');
 
-    $revision_table = '';
-    if ($revisionable) {
-      $revision_table = $entityType->getRevisionTable() ?: $entityType->id() . '_revision';
-    }
+    if (!empty($fieldDefinition)) {
+      $entityType = $this->entityTypeManager->getDefinition($fieldDefinition->getTargetEntityTypeId());
+      $base_table = $entityType->getBaseTable() ?: $entityType->id();
+      $views_revision_base_table = NULL;
+      $revisionable = $entityType->isRevisionable();
+      $base_field = $entityType->getKey('id');
 
-    $translatable = $entityType->isTranslatable();
-    $data_table = '';
-    if ($translatable) {
-      $data_table = $entityType->getDataTable() ?: $entityType->id() . '_field_data';
-    }
+      $revision_table = '';
+      if ($revisionable) {
+        $revision_table = $entityType->getRevisionTable() ?: $entityType->id() . '_revision';
+      }
 
-    // Some entity types do not have a revision data table defined, but still
-    // have a revision table name set in
-    // \Drupal\Core\Entity\Sql\SqlContentEntityStorage::initTableLayout() so we
-    // apply the same kind of logic.
-    $revision_data_table = '';
-    if ($revisionable && $translatable) {
-      $revision_data_table = $entityType->getRevisionDataTable() ?: $entityType->id() . '_field_revision';
-    }
-    $revision_field = $entityType->getKey('revision');
+      $translatable = $entityType->isTranslatable();
+      $data_table = '';
+      if ($translatable) {
+        $data_table = $entityType->getDataTable() ?: $entityType->id() . '_field_data';
+      }
 
-    $views_base_table = $base_table;
-    if ($data_table) {
-      $views_base_table = $data_table;
+      // Some entity types do not have a revision data table defined, but still
+      // have a revision table name set in
+      // \Drupal\Core\Entity\Sql\SqlContentEntityStorage::initTableLayout() so we
+      // apply the same kind of logic.
+      $revision_data_table = '';
+      if ($revisionable && $translatable) {
+        $revision_data_table = $entityType->getRevisionDataTable() ?: $entityType->id() . '_field_revision';
+      }
+      $revision_field = $entityType->getKey('revision');
+
+      $views_base_table = $base_table;
+      if ($data_table) {
+        $views_base_table = $data_table;
+      }
+      //TODO Add support for finding Fields API Fields base tables. See views.views.inc.
+      return $views_base_table;
     }
-    //TODO Add support for finding Fields API Fields base tables. See views.views.inc.
-    return $views_base_table;
   }
-
 }
