docs: def parse_statements(queries_input, engine):
      """ Parse input and return a list of SQL statements """
  
      queries = []
      query = ''
      sql_delimiter = ';'
  
      # Possible delimiters used in PostgreSQL functions
      postgres_func_delimiters = ['$$', '##']
  
      # Split input by lines
      lines = queries_input.strip().split('\n')
  
      for k, line in enumerate(lines):
          # Strip line
          line = line.strip()
  
          # Skip empty lines and comments
          if not line or line.startswith('--'):
              continue
  
          # Detect new SQL delimiter
          if engine == 'mysql' and line.upper().startswith('DELIMITER '):
              sql_delimiter = line.split()[1]
              continue
          elif engine == 'postgresql' and [delimiter for delimiter in postgres_func_delimiters if 'AS ' + delimiter in line.upper()]:
              sql_delimiter = line.split()[-1]
  
              # Ensure that we leave 'AS [DELIMITER]'
              query += line + '\n'
  
              continue
  
          # Statement is not finished
          if sql_delimiter not in line and k != len(lines) - 1:
              # Append line
              query += line + '\n'
          else:  # Statement is finished
              # Replace non default delimiter
              if sql_delimiter != ';' and engine == 'mysql' and line.endswith(sql_delimiter):
                  line = line.replace(sql_delimiter, ';')
  
              queries.append(query + line)
              query = ''
  
      return queries