code: protected function findTableNames($schema = '')
      {
          if ($schema === '') {
              $sql = <<<'SQL'
  SELECT
      TABLE_NAME
  FROM USER_TABLES
  UNION ALL
  SELECT
      VIEW_NAME AS TABLE_NAME
  FROM USER_VIEWS
  UNION ALL
  SELECT
      MVIEW_NAME AS TABLE_NAME
  FROM USER_MVIEWS
  ORDER BY TABLE_NAME
  SQL;
              $command = $this->db->createCommand($sql);
          } else {
              $sql = <<<'SQL'
  SELECT
      OBJECT_NAME AS TABLE_NAME
  FROM ALL_OBJECTS
  WHERE
      OBJECT_TYPE IN ('TABLE', 'VIEW', 'MATERIALIZED VIEW')
      AND OWNER = :schema
  ORDER BY OBJECT_NAME
  SQL;
              $command = $this->db->createCommand($sql, [':schema' => $schema]);
          }
  
          $rows = $command->queryAll();
          $names = [];
          foreach ($rows as $row) {
              if ($this->db->slavePdo->getAttribute(\PDO::ATTR_CASE) === \PDO::CASE_LOWER) {
                  $row = array_change_key_case($row, CASE_UPPER);
              }
              $names[] = $row['TABLE_NAME'];
          }
  
          return $names;
      }
docs: {@inheritdoc}