### Apache Airflow version

2.5.2

### What happened

When passing a select_query into the RedshiftToS3 Operator, the query will error out if it contains any single quotes because the body of the UNLOAD statement is being wrapped in single quotes. 

### What you think should happen instead

Instead, it's better practice to use the double dollar sign or dollar quoting to signify the start and end of the statement to run. This removes the need to escape any special characters and avoids the statement throwing an error in the common case of using single quotes to wrap string literals. 

### How to reproduce

Running the RedshiftToS3 Operator with the sql_query: `SELECT 'Single Quotes Break this Operator'` will throw the error

### Operating System

NAME="Amazon Linux" VERSION="2" ID="amzn" ID_LIKE="centos rhel fedora" VERSION_ID="2" PRETTY_NAME="Amazon Linux 2" ANSI_COLOR="0;33" CPE_NAME="cpe:2.3:o:amazon:amazon_linux:2" HOME_URL="https://amazonlinux.com//"

### Versions of Apache Airflow Providers

apache-airflow[package-extra]==2.4.3
apache-airflow-providers-amazon


### Deployment

Amazon (AWS) MWAA

### Deployment details

_No response_

### Anything else

_No response_

### Are you willing to submit PR?

- [X] Yes I am willing to submit a PR!

### Code of Conduct

- [X] I agree to follow this project's [Code of Conduct](https://github.com/apache/airflow/blob/main/CODE_OF_CONDUCT.md)

redshift_hook: RedshiftDataHook | RedshiftSQLHook
        if self.redshift_data_api_kwargs:
            redshift_hook = RedshiftDataHook(aws_conn_id=self.redshift_conn_id)
        else:
            redshift_hook = RedshiftSQLHook(redshift_conn_id=self.redshift_conn_id)
        conn = S3Hook.get_connection(conn_id=self.aws_conn_id)
        if conn.extra_dejson.get("role_arn", False):
            credentials_block = f"aws_iam_role={conn.extra_dejson['role_arn']}"
        else:
            s3_hook = S3Hook(aws_conn_id=self.aws_conn_id, verify=self.verify)
            credentials = s3_hook.get_credentials()
            credentials_block = build_credentials_block(credentials)
        unload_options = "\n\t\t\t".join(self.unload_options)
        unload_query = self._build_unload_query(
            credentials_block, self.select_query, self.s3_key, unload_options
        )
        self.log.info("Executing UNLOAD command...")
        if isinstance(redshift_hook, RedshiftDataHook):
            redshift_hook.execute_query(
                sql=unload_query, parameters=self.parameters, **self.redshift_data_api_kwargs
            )
        else:
            redshift_hook.run(unload_query, self.autocommit, parameters=self.parameters)
        self.log.info("UNLOAD command complete...")