Database schema:

CREATE TABLE game (
	id INTEGER NOT NULL -- example: ['45', '44'],
	genre_id INTEGER DEFAULT NULL -- example: ['5', '4'],
	game_name TEXT DEFAULT NULL -- example: ['2 Games in 1: Sonic Advance & ChuChu Rocket!', '2 Games in 1: Sonic Battle & ChuChu Rocket!'],
	PRIMARY KEY (id), 
	CONSTRAINT fk_game_genre FOREIGN KEY(genre_id) REFERENCES genre (id)
)


CREATE TABLE game_platform (
	id INTEGER NOT NULL -- example: ['2', '1'],
	game_publisher_id INTEGER DEFAULT NULL -- example: ['9852', '8564'],
	platform_id INTEGER DEFAULT NULL -- example: ['7', '4'],
	release_year INTEGER DEFAULT NULL -- example: ['2006', '2007'],
	PRIMARY KEY (id), 
	CONSTRAINT fk_game_platform_game_publisher FOREIGN KEY(game_publisher_id) REFERENCES game_publisher (id),
	CONSTRAINT fk_game_platform_platform FOREIGN KEY(platform_id) REFERENCES platform (id)
)


CREATE TABLE game_publisher (
	id INTEGER NOT NULL -- example: ['2', '1'],
	game_id INTEGER DEFAULT NULL -- example: ['9244', '10866'],
	publisher_id INTEGER DEFAULT NULL -- example: ['369', '328'],
	PRIMARY KEY (id), 
	CONSTRAINT fk_game_publisher_game FOREIGN KEY(game_id) REFERENCES game (id),
	CONSTRAINT fk_game_publisher_publisher FOREIGN KEY(publisher_id) REFERENCES publisher (id)
)


CREATE TABLE genre (
	id INTEGER NOT NULL -- example: ['2', '1'],
	genre_name TEXT DEFAULT NULL -- example: ['Adventure', 'Action'],
	PRIMARY KEY (id)
)


CREATE TABLE platform (
	id INTEGER NOT NULL -- example: ['2', '1'],
	platform_name TEXT DEFAULT NULL -- example: ['Wii', 'NES'],
	PRIMARY KEY (id)
)


CREATE TABLE publisher (
	id INTEGER NOT NULL -- example: ['2', '1'],
	publisher_name TEXT DEFAULT NULL -- example: ['1C Company', '10TACLE Studios'],
	PRIMARY KEY (id)
)


CREATE TABLE region (
	id INTEGER NOT NULL -- example: ['2', '1'],
	region_name TEXT DEFAULT NULL -- example: ['Europe', 'North America'],
	PRIMARY KEY (id)
)


CREATE TABLE region_sales (
	region_id INTEGER DEFAULT NULL -- example: ['2', '1'],
	game_platform_id INTEGER DEFAULT NULL -- example: ['50', '51'],
	num_sales REAL DEFAULT NULL -- example: ['3.5', '1.43'],
	CONSTRAINT fk_region_sales_game_platform FOREIGN KEY(game_platform_id) REFERENCES game_platform (id),
	CONSTRAINT fk_region_sales_region FOREIGN KEY(region_id) REFERENCES region (id)
)

Question: In 2004, what are the names of the platforms where Codemasters publish its games?
Evidence: name of platform refers to platform_name; Codemasters refers to publisher_name = 'Codemasters'; in 2004 refers to release_year = 2004

SQL:
SELECT T4.platform_name FROM publisher AS T1 INNER JOIN game_publisher AS T2 ON T1.id = T2.publisher_id INNER JOIN game_platform AS T3 ON T2.id = T3.game_publisher_id INNER JOIN platform AS T4 ON T3.platform_id = T4.id WHERE T3.release_year = 2004 AND T1.publisher_name = 'Codemasters'