Below is the list of tables from the database along with their columns and datatype. Need to generate an accurate SQL query for the question.
Only use the columns present in the respective table. Only use the columns which are required to generate the SQL query. Only use table joins if required and not otherwise.

### Tables ###
TABLE: CREATE TABLE products ( product_id number, color_code text, product_category_code text, product_name text, typical_buying_price text, typical_selling_price text, product_description text, other_product_details text )
TABLE: CREATE TABLE ref_characteristic_types ( characteristic_type_code text, characteristic_type_description text )
TABLE: CREATE TABLE product_characteristics ( product_id number, characteristic_id number, product_characteristic_value text )
TABLE: CREATE TABLE ref_colors ( color_code text, color_description text )
TABLE: CREATE TABLE ref_product_categories ( product_category_code text, product_category_description text, unit_of_measure text )
TABLE: CREATE TABLE characteristics ( characteristic_id number, characteristic_type_code text, characteristic_data_type text, characteristic_name text, other_characteristic_details text )

### Question ###
What are the different product names for products that have the 'warm' characteristic:?

### Accurate SQL ###

SELECT DISTINCT t1.product_name FROM products AS t1 JOIN product_characteristics AS t2 ON t1.product_id = t2.product_id JOIN characteristics AS t3 ON t2.characteristic_id = t3.characteristic_id WHERE t3.characteristic_name = "warm"