Heat the oil in a large, deep frying pan. Add the onion and cook for 5 minutes until softened, then add the garlic and cook for a further 2 minutes. Stir in the tomato purée and cook for 1 minute, then pour over the tomatoes. Add the sugar and thyme and season, then reduce the heat and leave to simmer for 10 minutes.
Slide the fish fillets into the sauce along with the olives, cover loosely with kitchen foil and leave to simmer for 8–10 minutes until the fish flakes easily. Serve with some boiled new potatoes, if you like.