Cut the cabbage in quarters, wash well, and cut out the hard inner core. Chop the leaves and cook the cabbage for five minutes in a large pot of boiling water. Drain and set aside.
Heat the oil in a frying pan and add the onions and garlic. Cook for five minutes. Add the rice and cook for two minutes, stirring. Add the chopped tomatoes and cook for 10 minutes or until the rice is just tender.
Meanwhile make a bechamel sauce by melting the butter in a saucepan and stirring in the flour. Cook the roux for two minutes and than slowly whisk in milk. Heat on medium heat until nearly boiling and thickened, then gradually add half of the cheese while stirring. Remove from heat.
To construct casserole, butter a large baking dish. Beginning with the cabbage, layer the cabbage and the rice mixture. Aim to get three even layers of each. Pour the bechamel sauce evenly over the top. Sprinkle with the remaining cheese and bake at 350°F (180°C) for 30 minutes. Serve the cabbage casserole hot.