How to make lines visible on rendering
You could use 3 ways:


model this geometry as contents of one mesh (i.e. subdividing or inset and bevel etc);
create it as it's created in real world - tiles as one object, cement as another. 
or just find image of tiles somewhere and apply it as a texture (while it would mean completely another way of adding details, you'll still be able to bake a normal map from that image in order to create a vision of details).


First way is faster, while the second one is better, more flexible and correct.

Since first way was already described, I add details only about second. This technique is described in tutorial Creating a Grungy Brick Wall in Blender.


Model tiles as separate objects (so Array modifier fits perfectly). Leave gaps between them which will be closed afterwards.

Add another object, make it very thin, a bit thiner than tiles and a bit shorter than they are. Add some geometry only to avoid Multiresolution modifier turning object into a ball.
Subdivide added mesh enough to sculpt in the gaps between tiles. Sculpt with both objects visible in order to see how much of effect should be added (i.e. in the beginning of the sculpting you won't really see the object you sculpt on except for the gaps. Keep in mind that cement shouldn't be visible very much and it shouldn't cover tiles with itself).


You could create one more mesh (e.g by duplicating the mesh which represents the cement and deleting Multires from it), bake these 2 meshes into the third one in order to get normal map which you can apply to the third object. See How do I bake a texture using Cycles bake about baking in Cycles. See Baking Normal maps in Cycles for more info about baking normal maps.

This is not needed in order to render scene. This will be needed to lower amount of time to render result and computer resources involved for it to work.
Setup lighting which is desired. Create adjacent materials for objects which represent cement and tiles and render.


Possible result of tiles:


Advantages of this way:


You can model tiles in any way you'd like to; it's lot simpler to bevel cubes when they are separate objects and you don't need to track topology of the whole model, at the same time modeling it to get mesh looking as desired. After modeling you're left only to spread it over the scene with Array modifier.
It's a lot easier to setup materials (no vertex colors, at least for this task; this doesn't mean you won't need to fake dirt).
It's easier to fake inaccuracies of cement surface (which isn't flat).