code: def get_tables(self):
      data = OrderedDict()
      data["models"] = {"type": "table", "deletable": False}
      data["models_versions"] = {"type": "table", "deletable": False}
      data["jobs"] = {"type": "table", "deletable": False}
      data["jobs_history"] = {"type": "table", "deletable": False}
      data["mdb_triggers"] = {"type": "table", "deletable": False}
      data["chatbots"] = {"type": "table", "deletable": False}
  
      models = self.get_models()
      for model in models:
          if model["metadata"]["active"] is True:
              data[model["name"]] = model["metadata"]
  
      views = self.get_views()
      for view in views:
          data[view["name"]] = view["metadata"]
  
      return data
  
imports: import datetime
  from typing import List
  from collections import OrderedDict
  import sqlalchemy
  import numpy
  from mindsdb_sql.parser.ast.base import ASTNode
  from mindsdb_sql import parse_sql
  from mindsdb.interfaces.storage import db
  from mindsdb.utilities.config import Config
  from mindsdb.interfaces.model.model_controller import ModelController
  from mindsdb.interfaces.database.views import ViewController
  from mindsdb.utilities.context import context
  from mindsdb.utilities.exception import EntityExistsError
  import mindsdb.utilities.profiler
label_desc: Use image node_id 17 for calling the Project obj's underlying member method code with example usage: obj.get_tables() and returns: data